/**
 * 功能：
 * 作者：lc
 * 日期：2024/9/22 16:20
 */
public class Algorithm_002_3_FindPeakElement {
    public static Integer findPeakElement(Integer[] arr) {
        int n = arr.length;
        if (arr.length == 1) {
            return 0;
        }
        if (arr[0] > arr[1]) {
            return 0;
        }
        if (arr[n - 1] > arr[n - 2]) {
            return n - 1;
        }
        int l = 1, r = n - 1, m = 0, ans = -1;
        while (l <= r) {
            m = (l + r) / 2;
            if (arr[m]<arr[m-1]){
                r=m-1;
            }else if (arr[m]<arr[m+1]){
                l=m+1;
            }else {
                ans=m;
                break;
            }
        }
        return ans;
    }
}
